package com.zp.business.entity.outpFees;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.zp.common.core.entity.BaseEntity;
import com.zp.common.core.utils.DateUtils;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 门诊收费记录主对象 outp_fees_master
 *
 * @author zhang peng
 * @ date 2024-04-12
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("outp_fees_master")
public class OutpFeesMaster extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "outp_fees_master_id")
    private String outpFeesMasterId;

    /**
     * 病人信息Id
     */
    private String patientId;

    /**
     * 就诊ID
     */
    private String clinicId;

    /**
     * 就诊日期
     */
    private Date visitDate;

    /**
     * 待收费记录ID
     */
    private String ordersId;

    /**
     * 收费号
     */
    private String feesNo;

    /**
     * $column.columnComment
     */
    private String serialNoParent;

    /**
     * 流水号
     */
    private String serialNo;

    /**
     * 总费用
     */
    private BigDecimal costs;

    /**
     * 应收费用
     */
    private BigDecimal charges;

    /**
     * 舍入差额
     */
    private BigDecimal diffCost;

    /**
     * 退费金额
     */
    private BigDecimal refundCharges;

    /**
     * 交费标志
     */
    private String chargeFlag;

    /**
     * 退费号
     */
    private String refundedFeesNo;

    /**
     * 退费人
     */
    private String refundedPerson;

    /**
     * 结账号
     */
    private String acctNo;

    /**
     * 机构ID
     */
    private String orgId;

    /**
     * 标志
     */
    @TableLogic
    private String delFlag;
    /**
     * 备注信息
     */
    private String remarks;
    /**
     * 医保结算交易类型（取自门诊收费业务类型字典 MZ_BUSINESS_TYPE_DICT）
     */
    private String ybSerialType;
    /**
     * 医保结算交易流水号
     */
    private String ybSerialNo;

    /**
     * 收费操作人
     */
    private String operationUser;
    /**
     * 医保结算交易信息
     */
    private String ybSerialData;
    /**
     * 电子发票流水号
     */
    private String invoiceSerialNo;
    /**
     * 参保类型
     */
    private String canBaoType;

    /**
     * 熔断后异常信息
     */
    @TableField(exist = false)
    private String exceptionCode;

    public void initEntity () {
        this.delFlag = "0";
    }

    /**
     * 修改人、修改时间信息信息
     */
    public void updateInfo () {
        setUpdateTime(DateUtils.getNowDate());
    }

}
